<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

    <script>
        let p1 = {
            name:'张三',
            logName : function(){
                // console.log(arguments)
                console.log('我叫：',this.name)
            }
        }
        p1.logName();

        let p2 = {
            name : '李四'
        }

        //当一个对没有该方法的时候，想要使用另一个对象的方法，此时需要借调
        //call与apply的用法类似，但是参数传递不同
        p1.logName.call(p2);
        //call,直接传递参数，例：p1.logName.call(p2,10,20,30,40);
        p1.logName.apply(p2);
        // apply则是通过数组传递参数，例：p1.logName.apply(p2,[10,20,30,40]);

        //bind：一个对象从另一个对象中拷贝,用法

        console.log(p1.logName.bind(p2))
        let log = p1.logName.bind(p2);
        log();
    </script>
</body>
</html>